<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:p="http://primefaces.org/ui"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:fnc="http://yournamespace.com/fnc">
    <ui:composition>
        <h:panelGroup id="displayMatriz" rendered="#{facesContext.externalContext.requestServletPath != fnc:concat(ConfiguracionBean.rutaContexto,'numeracion-matriz.xhtml')}">
            <h:outputScript library="js" name="numeracion.js" target="head"/>
            <h:panelGrid id="datosMatriz" style="width:100%" >
                <h:panelGrid style="text-align: left;font-size:10px" columns="2" rendered="#{UserBean.permisos.numeracion or (UserBean.liberar or UserBean.reservar)}">
                    <h:panelGroup id="opciones">
                        <p:commandButton value="Acción" ajax="true" actionListener="#{NumeracionBean.detalleAccionNumMatriz}" update=":datosAccionRecursoMatriz" oncomplete="numAccionMatrizDialog.show();" icon="ui-icon ui-icon-cart"  />
                    </h:panelGroup>
                    <h:panelGrid id="pgDatosMatriz" columns="5" >
                        <h:outputText value="Selección: " style="font-weight: bold;" rendered="#{NumeracionBean.seleccionNumActual.nunFin != '0'}"/>
                        <h:panelGrid columns="2" style="border:1px solid; background: darkgreen; color: white;" rendered="#{NumeracionBean.seleccionNumAnterior.nunInicio != '0'}">
                            <h:outputText value="Inicio: "/>
                            <h:outputText value="(#{NumeracionBean.seleccionNumAnterior.ndnCodigo.ndtNombre}) #{NumeracionBean.seleccionNumAnterior.nunInicio}"/>
                        </h:panelGrid>
                        <h:panelGrid columns="2" style="border:1px solid; background: darkgreen; color: white;" rendered="#{NumeracionBean.seleccionNumActual.nunFin != '0'}">
                            <h:outputText value="Fin: "/>
                            <h:outputText value="(#{NumeracionBean.seleccionNumActual.ndnCodigo.ndtNombre}) #{NumeracionBean.seleccionNumActual.nunFin}"/>
                        </h:panelGrid>
                        <h:panelGrid columns="2" style="border:1px solid; background: darkgreen; color: white;" rendered="#{NumeracionBean.seleccionNumActual.nunFin != '0'}">
                            <h:outputText value="Cantidad de números seleccionados: "/>
                            <h:outputText value="#{NumeracionBean.seleccionNumActual.nunFin - NumeracionBean.seleccionNumAnterior.nunInicio + 1}"/>
                        </h:panelGrid>
                    </h:panelGrid>
                </h:panelGrid>
                <h:panelGroup id="pgDatos">
                    <table border="1" style="font-size:8px;width:100%;border-collapse: collapse;" class="estilo" cellpadding="0" cellspacing="0">
                        <thead>
                            <tr style="text-align: center; height:25px" class="ui-widget-header">
                                <th>Rango</th>
                                <th>0</th>
                                <th>1</th>
                                <th>2</th>
                                <th>3</th>
                                <th>4</th>
                                <th>5</th>
                                <th>6</th>
                                <th>7</th>
                                <th>8</th>
                                <th>9</th>
                            </tr>
                        </thead>
                        <ui:repeat value="#{NumeracionBean.numer}" var="datos">
                            <tr style="height:27px;">
                                <td style="text-align: center;" class="ui-widget-header">
                                    <h:outputText value="#{datos[0]}"/>  
                                </td>
                                <ui:repeat value="#{datos}" var="nu" offset="1">
                                    <td id="#{fnc:countLista(nu) == 1 ? fnc:concat('columna',nu[0][2]) : ''}" style="border: 1px solid black;text-align:center; width:9.5%;#{fnc:countLista(nu) == 1 ? nu[0][1] : ''}">
                                        <input id="lista#{nu[0][2]}" type="hidden" value="#{fnc:countLista(nu)}"/>
                                        <h:panelGroup id="colum" rendered="#{fnc:countLista(nu) == 1}">
                                            <input id="hcolumna#{nu[0][2]}" type="hidden" style="#{fnc:countLista(nu) == 1 ? nu[0][1] : ''}"/>
                                            <h:panelGrid id="celda" width="100%" cellpadding="0" cellspacing="0" style="height:27px">
                                                <p:commandLink action="#{NumeracionBean.seleccionarNumeracion}" update=":pgDatosMatriz" styleClass="celda" rendered="#{UserBean.permisos.numeracion or (UserBean.liberar or UserBean.reservar)}">
                                                    <h:outputText  value="#{nu[0][0].codigoMunicipio.nombreMunicipio}" />
                                                    <f:setPropertyActionListener target="#{NumeracionBean.seleccionNum}" value="#{nu[0][0]}" />
                                                    <f:setPropertyActionListener target="#{NumeracionBean.seleccionId}" value="#{nu[0][2]}" />
                                                </p:commandLink>
                                                <h:outputText value="#{nu[0][0].codigoMunicipio.nombreMunicipio}" rendered="#{!UserBean.permisos.numeracion and (!UserBean.liberar or !UserBean.reservar)}"/>
                                            </h:panelGrid>
                                            
                                            <p:tooltip for="celda" styleClass="tooltip">
                                                <h:outputText value="Operador: " style="font-weight: bold"/>
                                                <h:outputText value="#{nu[0][0].emrCodigo.emtNombre}"/><br/>
                                                <h:outputText value="Municipio: " style="font-weight: bold"/>
                                                <h:outputText value="#{nu[0][0].codigoMunicipio.nombreMunicipio} (#{nu[0][0].codigoMunicipio.codigoDepartamento.nombreDepartamento})"/><br/>
                                                <h:outputText value="Estado: " style="font-weight: bold"/>
                                                <h:outputText value="#{nu[0][0].esnCodigo.estNombre}"/>
                                            </p:tooltip>
                                        </h:panelGroup>
                                        <h:panelGroup rendered="#{fnc:countLista(nu) > 1}">
                                            <table style="width:100%;height:27px;border-collapse: collapse;border-style: hidden;" cellpadding="0" cellspacing="0" >
                                                <tr>
                                                    <ui:repeat value="#{nu}" var="num">
                                                        <input id="hcolumna#{num[2]}" type="hidden" style="#{num[1]}"/>
                                                        <h:panelGroup rendered="#{num[0].codigoMunicipio.nombreMunicipio != null}">
                                                            <td id="columna#{num[2]}" style="border: 1px solid black;width:#{(num[0].nunFin - num[0].nunInicio + 1)/10}%;#{num[1]}">
                                                                <h:panelGrid id="subcelda" width="100%" cellpadding="0" cellspacing="0">
                                                                    <p:commandLink action="#{NumeracionBean.seleccionarNumeracion}" update=":pgDatosMatriz" styleClass="celda" rendered="#{UserBean.permisos.numeracion or (UserBean.liberar or UserBean.reservar)}">
                                                                        <f:setPropertyActionListener target="#{NumeracionBean.seleccionNum}" value="#{num[0]}" />
                                                                        <f:setPropertyActionListener target="#{NumeracionBean.seleccionId}" value="#{num[2]}" />
                                                                        <h:panelGroup rendered="#{num[0].nunFin - num[0].nunInicio + 1 > 100}">
                                                                            <h:outputText value="#{num[0].nunFin - num[0].nunInicio + 1}" converter="javax.faces.Integer"/>
                                                                        </h:panelGroup>
                                                                        <h:panelGroup rendered="#{num[0].nunFin - num[0].nunInicio + 1 == 100 and num[0].esnCodigo.esnCodigo == '3'}">
                                                                            <p:graphicImage style="border:0px" value="#{ConfiguracionBean.rutaContexto}resources/images/100-#{fnc:toColorCodeFont(num[0].emrCodigo.emrCodigo) == '#000000' ? 'N' : 'B'}.png" />
                                                                        </h:panelGroup>
                                                                        <h:panelGroup rendered="#{num[0].nunFin - num[0].nunInicio + 1 == 100 and num[0].esnCodigo.esnCodigo != '3'}">
                                                                            <p:graphicImage style="border:0px" value="#{ConfiguracionBean.rutaContexto}resources/images/100-#{num[0].esnCodigo.esnCodigo == '4' ? 'B' : 'N'}.png" />
                                                                        </h:panelGroup>
                                                                    </p:commandLink>
                                                                    <h:panelGroup styleClass="celda" rendered="#{!UserBean.permisos.numeracion and (!UserBean.liberar or !UserBean.reservar)}">
                                                                        <h:panelGroup rendered="#{num[0].nunFin - num[0].nunInicio + 1 > 100}">
                                                                            <h:outputText value="#{num[0].nunFin - num[0].nunInicio + 1}" converter="javax.faces.Integer"/>
                                                                        </h:panelGroup>
                                                                        <h:panelGroup rendered="#{num[0].nunFin - num[0].nunInicio + 1 == 100 and num[0].esnCodigo.esnCodigo == '3'}">
                                                                            <p:graphicImage style="border:0px" value="#{ConfiguracionBean.rutaContexto}resources/images/100-#{fnc:toColorCodeFont(num[0].emrCodigo.emrCodigo) == '#000000' ? 'N' : 'B'}.png" />
                                                                        </h:panelGroup>
                                                                        <h:panelGroup rendered="#{num[0].nunFin - num[0].nunInicio + 1 == 100 and num[0].esnCodigo.esnCodigo != '3'}">
                                                                            <p:graphicImage style="border:0px" value="#{ConfiguracionBean.rutaContexto}resources/images/100-#{num[0].esnCodigo.esnCodigo == '4' ? 'B' : 'N'}.png" />
                                                                        </h:panelGroup>
                                                                    </h:panelGroup>
                                                                </h:panelGrid>
                                                                <p:tooltip for="subcelda" styleClass="tooltip">
                                                                    <h:outputText value="Operador: " style="font-weight: bold"/>
                                                                    <h:outputText value="#{num[0].emrCodigo.emtNombre}"/><br/>
                                                                    <h:outputText value="Municipio: " style="font-weight: bold"/>
                                                                    <h:outputText value="#{num[0].codigoMunicipio.nombreMunicipio} (#{num[0].codigoMunicipio.codigoDepartamento.nombreDepartamento})"/><br/>
                                                                    <h:outputText value="Estado: " style="font-weight: bold"/>
                                                                    <h:outputText value="#{num[0].esnCodigo.estNombre}"/>
                                                                </p:tooltip>
                                                            </td>
                                                        </h:panelGroup>
                                                    </ui:repeat>
                                                </tr>
                                            </table>
                                        </h:panelGroup>
                                    </td>
                                </ui:repeat>
                            </tr>
                        </ui:repeat>
                    </table>
                </h:panelGroup>
                
                <h:panelGroup id="datosAccionRecursoMatriz">

                    <p:dialog header="Detalle" widgetVar="numAccionMatrizDialog" resizable="false" modal="true" draggable="false"
                              showEffect="fade" hideEffect="fade" position="center" style="position: absolute;">
                        <h:panelGrid cellpadding="1" style="font-size: 9px;" width="100%">
                            <h:form>
                                <h:panelGrid columns="2" style="text-align: center;">
                                    <h:panelGroup rendered="#{UserBean.login}">
                                        <h:outputText value="Los bloques en reserva solo pueden ser manipulados por el administrador" rendered="#{(!UserBean.reservar) and (NumeracionBean.selectedNum.esnCodigo.esnCodigo == 4)}" style="color: red;"/>
                                        <p:commandButton value="Pre-Asignar" style="width:80px" rendered="#{(UserBean.permisos.numeracion and NumeracionBean.selectedNumsPreasignar)}" action="#{TramiteBean.opcionesPreasignar}" update=":datosPreasignar" oncomplete="numAccionMatrizDialog.hide();preasignarDialog.show();">
                                            <f:setPropertyActionListener target="#{TramiteBean.tipoRecurso}" value="numeracion"/>
                                        </p:commandButton>
                                        <p:commandButton value="Recuperar" rendered="#{(UserBean.permisos.numeracion and NumeracionBean.selectedNumsRecuperar)}" update=":datosRecuperar" oncomplete="numAccionMatrizDialog.hide();recuperarDialog.show();"/>
                                        <p:commandButton value="Liberar" rendered="#{(UserBean.liberar and NumeracionBean.selectedNumsLiberar)}" action="#{TramiteBean.liberarReservarRecurso}" update=":datosResultadoAgregar" oncomplete="numAccionMatrizDialog.hide();resultadoAgregarDialog.show();">
                                            <f:setPropertyActionListener target="#{TramiteBean.tipoRecurso}" value="numeracion"/>
                                            <f:setPropertyActionListener target="#{TramiteBean.codigoAccion}" value="1"/>
                                        </p:commandButton>
                                        <p:commandButton value="Reservar" rendered="#{(UserBean.reservar and NumeracionBean.selectedNumsReservar)}" action="#{TramiteBean.liberarReservarRecurso}" update=":datosResultadoAgregar" oncomplete="numAccionMatrizDialog.hide();resultadoAgregarDialog.show();">
                                            <f:setPropertyActionListener target="#{TramiteBean.tipoRecurso}" value="numeracion"/>
                                            <f:setPropertyActionListener target="#{TramiteBean.codigoAccion}" value="4"/>
                                        </p:commandButton>
                                    </h:panelGroup>

                                </h:panelGrid>
                                
                                <h:outputText value="#{NumeracionBean.selectedNumsCantidad} números seleccionados" style="font-weight: bold"/>
                                
                                <p:dataTable id="datosAccionNumMatriz" value="#{NumeracionBean.selectedNums}" var="detalleNum"
                                             paginator="true" rows="10" emptyMessage="No se encontraron registros" style="font-size:9px">
                                    <f:facet name="header">Detalle numeración</f:facet>
                                    <p:column headerText="NDC" >
                                        <h:outputText value="#{detalleNum.ndnCodigo.ndtNombre}"/>
                                    </p:column>
                                    <p:column headerText="BLOQUE" styleClass="tabla-recurso">
                                        <h:outputText value="#{detalleNum.nunInicio} - #{detalleNum.nunFin}"/>
                                    </p:column>
                                    <p:column headerText="CANTIDAD">
                                        <h:outputText value="#{detalleNum.nunFin-detalleNum.nunInicio+1}"/>
                                    </p:column>
                                    <p:column headerText="MUNICIPIO" >
                                        <h:outputText value="#{detalleNum.codigoMunicipio.nombreMunicipio}"/>
                                        <h:outputText value="(#{detalleNum.codigoMunicipio.codigoDepartamento.nombreDepartamento})"/>
                                    </p:column>
                                    <p:column headerText="ESTADO" >
                                        <h:outputText value="#{detalleNum.esnCodigo.estNombre}"/>
                                    </p:column>
                                    <p:column headerText="EMPRESA" >
                                        <h:outputText value="#{detalleNum.emrCodigo.emtNombre}"/>
                                    </p:column>
                                </p:dataTable>

                                
                            </h:form>
                        </h:panelGrid>
                    </p:dialog>
                </h:panelGroup>
                
            </h:panelGrid>
            
            
            
        </h:panelGroup>
    </ui:composition>
</html>